package com.example.utils;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import lombok.extern.slf4j.Slf4j;
import java.util.Date;
import java.util.Map;
@Slf4j
public class JwtUtils {
    //生成JWT
    public static String generateJwt(  Map<String, Object> claims) {
        String jwt = Jwts.builder()//构建一个令牌
                .addClaims(claims)
                .signWith(SignatureAlgorithm.HS256, "itheima")  //设置算法和密钥
                .setClaims(claims)  //通过MAP集合设置自定义内容
                .setExpiration(new Date(System.currentTimeMillis() + 1000 * 60 * 60))  //设置有效期
                .compact();//生成JWT令牌，返回字符串

        return jwt;

    }
    //解析JWT
        public static Claims parseJwt(String jwt) {
        Claims claims = Jwts.parser()
                .setSigningKey("itheima")//设置密钥
                .parseClaimsJws(jwt)
                .getBody();//获取自定义内容
        System.out.println(claims);
        return claims;
    }
}
